home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / vddll9_1 / vdactive.frm (.txt) < prev    next >
Encoding:
Visual Basic Form  |  1999-01-07  |  9.2 KB  |  291 lines

  1. VERSION 5.00
  2. Object = "{6B7E6392-850A-101B-AFC0-4210102A8DA7}#1.3#0"; "COMCTL32.OCX"
  3. Begin VB.Form frmVINDecoder 
  4.    Caption         =   "ESP Data Solutions"
  5.    ClientHeight    =   6555
  6.    ClientLeft      =   2280
  7.    ClientTop       =   1845
  8.    ClientWidth     =   5295
  9.    Icon            =   "VDActiveXTest.frx":0000
  10.    LinkTopic       =   "Form1"
  11.    MaxButton       =   0   'False
  12.    Picture         =   "VDActiveXTest.frx":000C
  13.    ScaleHeight     =   6555
  14.    ScaleWidth      =   5295
  15.    Begin VB.Frame frmMessage 
  16.       Height          =   855
  17.       Left            =   1080
  18.       TabIndex        =   9
  19.       Top             =   60
  20.       Width           =   4095
  21.       Begin VB.Label lblMessage 
  22.          Caption         =   $"VDActiveXTest.frx":135AE
  23.          Height          =   615
  24.          Left            =   120
  25.          TabIndex        =   10
  26.          Top             =   180
  27.          Width           =   3855
  28.       End
  29.    End
  30.    Begin ComctlLib.ListView lvwValues 
  31.       Height          =   2775
  32.       Left            =   1080
  33.       TabIndex        =   8
  34.       Top             =   1920
  35.       Width           =   4095
  36.       _ExtentX        =   7223
  37.       _ExtentY        =   4895
  38.       View            =   3
  39.       LabelEdit       =   1
  40.       LabelWrap       =   -1  'True
  41.       HideSelection   =   -1  'True
  42.       _Version        =   327682
  43.       ForeColor       =   -2147483640
  44.       BackColor       =   -2147483643
  45.       BorderStyle     =   1
  46.       Appearance      =   1
  47.       NumItems        =   2
  48.       BeginProperty ColumnHeader(1) {0713E8C7-850A-101B-AFC0-4210102A8DA7} 
  49.          Key             =   ""
  50.          Object.Tag             =   ""
  51.          Text            =   "Data"
  52.          Object.Width           =   2117
  53.       EndProperty
  54.       BeginProperty ColumnHeader(2) {0713E8C7-850A-101B-AFC0-4210102A8DA7} 
  55.          SubItemIndex    =   1
  56.          Key             =   ""
  57.          Object.Tag             =   ""
  58.          Text            =   "Value"
  59.          Object.Width           =   3599
  60.       EndProperty
  61.    End
  62.    Begin VB.CommandButton cmdClear 
  63.       Caption         =   "&Clear"
  64.       Height          =   315
  65.       Left            =   1140
  66.       TabIndex        =   2
  67.       Top             =   6120
  68.       Width           =   1275
  69.    End
  70.    Begin VB.ListBox lstVDReturnValues 
  71.       Height          =   840
  72.       ItemData        =   "VDActiveXTest.frx":1364C
  73.       Left            =   1080
  74.       List            =   "VDActiveXTest.frx":1364E
  75.       TabIndex        =   1
  76.       Top             =   5100
  77.       Width           =   4095
  78.    End
  79.    Begin VB.CommandButton cmdExit 
  80.       Caption         =   "&Exit"
  81.       Height          =   315
  82.       Left            =   3900
  83.       TabIndex        =   4
  84.       Top             =   6120
  85.       Width           =   1275
  86.    End
  87.    Begin VB.TextBox tbVIN 
  88.       Height          =   285
  89.       Left            =   1080
  90.       TabIndex        =   0
  91.       Text            =   "1G1YY23P0N5116446"
  92.       Top             =   1260
  93.       Width           =   2655
  94.    End
  95.    Begin VB.CommandButton cmdDecode 
  96.       Caption         =   "&Decode VIN"
  97.       Height          =   315
  98.       Left            =   2520
  99.       TabIndex        =   3
  100.       Top             =   6120
  101.       Width           =   1275
  102.    End
  103.    Begin VB.Label lblField 
  104.       BackStyle       =   0  'Transparent
  105.       Caption         =   "Decoded Data"
  106.       Height          =   195
  107.       Index           =   1
  108.       Left            =   1080
  109.       TabIndex        =   7
  110.       Top             =   1680
  111.       Width           =   2175
  112.    End
  113.    Begin VB.Label lblField 
  114.       BackStyle       =   0  'Transparent
  115.       Caption         =   "VIN Decoder return values"
  116.       Height          =   195
  117.       Index           =   7
  118.       Left            =   1080
  119.       TabIndex        =   6
  120.       Top             =   4860
  121.       Width           =   2175
  122.    End
  123.    Begin VB.Label lblField 
  124.       BackStyle       =   0  'Transparent
  125.       Caption         =   "Vehicle Identification Number"
  126.       Height          =   195
  127.       Index           =   0
  128.       Left            =   1080
  129.       TabIndex        =   5
  130.       Top             =   1020
  131.       Width           =   2175
  132.    End
  133. Attribute VB_Name = "frmVINDecoder"
  134. Attribute VB_GlobalNameSpace = False
  135. Attribute VB_Creatable = False
  136. Attribute VB_PredeclaredId = True
  137. Attribute VB_Exposed = False
  138. Option Explicit
  139.  Private vd As VINDecoderDemo
  140.  Private stdValues(10) As String
  141.  Private Const vdStdValueCount = 9
  142. ' VIN Decoder Constants
  143.  Private Const vdDecodeOK = 0
  144.  Private Const vdIllegalChar = 1
  145.  Private Const vdLenToShort = 2
  146.  Private Const vdLenToLong = 3
  147.  Private Const vdBadCheckDigit = 4
  148.  Private Const vdVehicleUnavailable = 5
  149.  Private Const vdYearUnavailable = 6
  150.  Private Const vdError = 7
  151.  Private Const vdInitError = 8
  152.  Private Const vdErrorShutdown = 10
  153.  Private Const vdUserDisabled = 11
  154. Sub decodeVin()
  155.  Dim n  As Integer
  156.  Dim rv As Long
  157.  Dim li As ListItem
  158.  ' case out VIN decoders return value
  159.   clearControls
  160.   rv = vd.decodeVin(tbVIN.Text)
  161.        
  162.    Select Case rv
  163.     Case vdDecodeOK           ' VIN decoded successfully
  164.      
  165.      lstVDReturnValues.AddItem "VIN Decoded successfully"
  166.          
  167.      For n = 1 To vdStdValueCount
  168.        Set li = lvwValues.ListItems.Add(, , stdValues(n))
  169.        li.SubItems(1) = vd.QueryStdValue(LCase(stdValues(n)))
  170.      Next n
  171.          
  172.      getNonStdValues
  173.        
  174.     Case vdIllegalChar        ' VIN contains an illegal character
  175.      lstVDReturnValues.AddItem "VIN Number contains illegal characters"
  176.      
  177.     Case vdLenToShort         ' VIN to Short  < 10
  178.      lstVDReturnValues.AddItem "VIN to short to decode"
  179.      
  180.     Case vdLenToLong          ' VIN to long   > 17
  181.      lstVDReturnValues.AddItem "VIN Execeds 17 characters"
  182.      
  183.     Case vdBadCheckDigit      ' Bad check digit
  184.      lstVDReturnValues.AddItem "VIN is incorrect"
  185.      
  186.     Case vdVehicleUnavailable ' vehicle is unavailable
  187.      lstVDReturnValues.AddItem "This vehicle is unavailable in the demo database"
  188.     Case vdYearUnavailable    ' unavailable year for vehicle
  189.      lstVDReturnValues.AddItem "The model year for this vehicle is unavailable"
  190.      
  191.     Case vdInitError          ' previously an initialization error
  192.      lstVDReturnValues.AddItem "Initialization Failure"
  193.      showError
  194.      
  195.     Case vdErrorShutdown      ' a fatal error occured and object is shutdown
  196.      lstVDReturnValues.AddItem "Fatal error - shutdown flag set"
  197.      showError
  198.         
  199.     Case vdUserDisabled       ' user disabled
  200.      lstVDReturnValues.AddItem "User disabled"
  201.          
  202.     Case vdError              ' a runtime error occured
  203.      lstVDReturnValues.AddItem "An error occured"
  204.      showError
  205.      
  206.    End Select
  207.  'Debug.Assert Not vd.IsError
  208. End Sub
  209. Private Sub getNonStdValues()
  210.  Dim description As String
  211.  Dim value       As String
  212.  Dim rv          As Boolean
  213.  Dim li          As ListItem
  214.  ' query non standard values and add to list
  215.   If vd.QueryFirstNonStd(description, value) Then
  216.    Set li = lvwValues.ListItems.Add(, , description)
  217.    li.SubItems(1) = value
  218.         
  219.     Do
  220.      
  221.      rv = vd.QueryNextNonStd(description, value)
  222.      
  223.      If rv Then
  224.        Set li = lvwValues.ListItems.Add(, , description)
  225.        li.SubItems(1) = value
  226.      End If
  227.      
  228.     Loop While rv
  229.   End If
  230. End Sub
  231. Private Sub loadStdValuesArray()
  232.  ' fill array with standard value types for later use
  233.   stdValues(1) = "Year"
  234.   stdValues(2) = "Make"
  235.   stdValues(3) = "Model"
  236.   stdValues(4) = "Body"
  237.   stdValues(5) = "Engine"
  238.   stdValues(6) = "Assembly"
  239.   stdValues(7) = "ProductionID"
  240.   stdValues(8) = "Country"
  241.   stdValues(9) = "CheckDigit"
  242. End Sub
  243. Private Sub showError()
  244.  Dim err_no     As Long
  245.  Dim err_origin As Long
  246.  Dim err_type   As String
  247.  ' get the last error that occured and dump to listbox
  248.   vd.GetLastError err_no, err_type, err_origin
  249.   lstVDReturnValues.AddItem "Error Type   -> " & err_type & "   " & _
  250.                             "Error Number -> " & err_no & "   " & _
  251.                             "Error Origin -> " & err_origin
  252. End Sub
  253. Private Sub cmdClear_Click()
  254.   clearControls
  255. End Sub
  256. Private Sub cmdDecode_Click()
  257.   decodeVin
  258. End Sub
  259. Private Sub cmdExit_Click()
  260.   Unload Me
  261. End Sub
  262. Private Sub Form_Load()
  263.  Dim rv As Long
  264.  ' create a new instance of VIN Decoder and initialize
  265.  '  initialize returns false on fail, true on ok
  266.   Set vd = New VINDecoderDemo
  267.    If vd.Initialize Then
  268.      lstVDReturnValues.AddItem "VIN Decoder Initialized Ok"
  269.     Else
  270.        lstVDReturnValues.AddItem "Initialization Error"
  271.        lstVDReturnValues.AddItem "Shutdown flag set"
  272.    End If
  273.   loadStdValuesArray
  274. End Sub
  275. Private Sub Form_Unload(Cancel As Integer)
  276.  ' destroy VIN Decoder
  277.   Set vd = Nothing
  278. End Sub
  279. Private Sub tbVIN_KeyPress(KeyAscii As Integer)
  280.  ' if user hit enter the enter key
  281.   If KeyAscii = 13 Then
  282.     decodeVin
  283.     KeyAscii = 0
  284.   End If
  285. End Sub
  286. Private Sub clearControls()
  287.  ' clear lists
  288.   lvwValues.ListItems.Clear
  289.   lstVDReturnValues.Clear
  290. End Sub
  291.